Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■NESA-FO BIOS


INT 1Fh - Function C0h
分類	NESA-FO BIOS
名前	対象スロット番号の取得(1)
対象	PC-H98
入力	AH=C0h
	AL=製品コード(00〜FFh)
出力	AX=スロット番号表
	    bit 15:論理スロット番号15
	    bit 14:論理スロット番号14
		:
	    bit  0:論理スロット番号 0
	    * 対応するスロット番号のビットが1になる
解説  o 指定された製品コードを持つ拡張ボードが実装されているスロット番号を
	返す。同じ拡張ボードが複数実装されている場合は、複数のビットが1に
	なる。
関連	
表	物理スロット番号とスロット名の対応
	----------------+------------------------------
	物理スロット番号|スロット名
	----------------+------------------------------
	00h             |欠番
	01h             |拡張スロット#1
	02h             |拡張スロット#2
	03h             |拡張スロット#3
	04h             |拡張スロット#4
	05h             |リザーブ
	06h             |HDC専用スロット
	07h             |CRTC専用スロット
	08〜0Eh         |リザーブ
	0Fh             |I/O拡張ユニット(Undocumented)
	----------------+------------------------------
	
表	製品コードと製品名の対応例(Undocumented)
	----------+-----------------------------+----------
	製品コード|製品名                       |機能ID(4) 
	----------+-----------------------------+----------
	02h       |PC-H98/70-E02(ESDI 100MB HDD)|06h       
	03h       |PC-H98S/8-E02(SCSI 100MB HDD)|16h       
	04h       |PC-H98-B02(2MBメモリボード)  |06h       
	----------+-----------------------------+----------


INT 1Fh - Function C1h
分類	NESA-FO BIOS
名前	対象スロット番号の取得(2)
対象	PC-H98
入力	AH=C1h
	AL=拡張ROMのセグメントアドレス(上位8ビット)
出力	AH=不定
	■該当する拡張ボードが見つかったとき
	AL=論理スロット番号(00〜0Fh)
	■該当する拡張ボードが見つからなかったとき
	AL=FFh
解説  o 指定されたアドレスに配置されている拡張ROMを持つ拡張ボードが
	実装されているスロット番号を返す。
	EMM386.EXEがフックする。
関連	


INT 1Fh - Function C2h
分類	NESA-FO BIOS
名前	機能IDの取得
対象	PC-H98
入力	AH=C2h
	AL=論理スロット番号(00〜0Fh)
出力	DX=機能ID(1,2) : ボードメーカコード
	AH=機能ID(3)   : 製品コード
	AL=機能ID(4) bit 7〜4:Compatibleコード
	             bit 3,2 :ボード区分
	             bit 1,0 :NESA-FOタイプ
	<<ボードメーカーコード>>
	ボードメーカーコードとは、3文字のアルファベットを以下のように
	2バイトに格納したもの。
		bit 15    : 常に0
		bit 14〜10: 1文字目のコード
		bit  9〜 5: 2文字目のコード
		bit  4〜 0: 3文字目のコード
	各文字のコードと文字の対応は以下のとおり。
		00000b = 使用しない
		00001b = 'A'
		00010b = 'B'
		   :
		11010b = 'Z'
		11011b = 一般のお客様利用ボードメーカコード
		11100b = 使用しない
		   :
		11111b = 使用しない
	"NEC"の場合は、38A3hになる。
解説  o 指定されたスロットに実装されている拡張ボードの機能IDを返す。
関連	


INT 1Fh - Function C3h
分類	NESA-FO BIOS
名前	NESA-FOレジスタ設定値の取得
対象	PC-H98
入力	AH=C3h
	AL=スロット論理番号(00〜0Fh)
	DL=NESA-FOレジスタ番号(00〜0Fh)
出力	DL=NESA-FOレジスタ設定値
	DH=不定
解説  o 指定されたスロットに実装されている拡張ボードのNESA-FOレジスタの設定値を
	読み出す。
関連	


INT 1Fh - Function C4h
分類	NESA-FO BIOS
名前	NESA-FO割り付け設定情報の取得
対象	PC-H98
入力	AH=C4h
	AL=論理スロット番号(00〜0Fh)
	DL bit 7〜4=割り付け項目(1〜4)
	DL bit 3〜0=割り付け情報#0〜#3(0〜3)
出力	(1)割り付け項目(入力のDL bit 7〜4)=1のとき
	DL=割り込みチャネル情報
	    bit 7:フラグ
		1=割り込み使用する
		0=割り込み使用しない
	    bit 6,5:モード
		11b=シェアリング可/レベルモード
		10b=未使用
		01b=シェアリング不可/レベルモード
		00b=シェアリング不可/エッジモード
	    bit 3〜0:割り込みレベル(IR値)
		1101b=INT6
		1100b=INT5
		1010b=INT4
		1001b=INT3
		0110b=INT2
		0101b=INT1
		0011b=INT0
	(2)割り付け項目(入力のDL bit 7〜4)=2のとき
	DL=DMAチャネル情報
	    bit 7:DMAの使用状況
		1=DMA使用する
		0=DMA使用しない
	    bit 6:モード
		   1=シェアリング可
		   0=シェアリング不可
	    bit 2〜0:DMAチャネル番号(0〜6)
	(3)割り付け項目(入力のDL bit 7〜4)=3のとき
	AL=I/Oアドレス情報
	     bit 7,6:領域割り付け
		      10b=偶数割り付け
		      01b=奇数割り付け
		      00b=連続割り付け
	     bit 5〜0:領域サイズ(I/Oアドレスポート数)
	DX=bit 15〜0=I/O開始アドレス
	(4)割り付け項目(入力のDL bit 7〜4)=4のとき
	AL=メモリ領域開始アドレス(256バイト単位)上位8ビット
	DX=メモリ領域開始アドレス(256バイト単位)下位16ビット
	BX=メモリ領域サイズ(4Kバイト単位)
解説  o 指定されたスロットに実装されている拡張ボードのNESA-FO割り付け設定
	情報を読み出す。
      o 入力のDL bit 3〜0にセットする割り付け情報とは、1枚のボード上に
	複数の資源を持つ場合に、資源の区別をするために使用する。
      o	EMM386.EXEがフックする
関連	


INT 1Fh - Function C5h
分類	NESA-FO BIOS
名前	マウス割り込みレベルの取得
対象	PC-H98
入力	AH=C5h
出力	AL=割り込みチャネル情報
	* INT 1Fh - Function C4hの割り込みチャネル情報と同じ形式
解説  o マウス割り込みに関する設定を読み出す。
関連	


INT 1Fh - Function C6h
分類	NESA-FO BIOS
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=C6h
出力	なし
解説  o なし
関連	


INT 1Fh - Function C7h
分類	NESA-FO BIOS
名前	不明
	Undocumented
対象	PC-H98
入力	AH=C7h
	AL=サブファンクション番号
	DX=不明
出力	
解説  o NESAバス制御関係。詳細不明。CHGEV.EXEで使用。
関連	


INT 1Fh - Function C8〜CFh
分類	
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=C8〜CFh
出力	なし
解説  o なし
関連	


■PCMCIA SSDRV.SYS


INT 1Fh - Function CFh Subfunction 00h
分類	PCMCIA Socket Service
名前	機能なし
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=00h
出力	AH=15h(CF=1): 無効機能
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	


INT 1Fh - Function CFh Subfunction 01h
分類	PCMCIA Socket Service
名前	不明
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=01h
	BH=アダプタ番号(通常00hを指定する)
	BL=ソケット(通常01hを指定する)
出力	AH=00h(CF=0): 正常終了
	    CH=?
	    CL=?
	    DX=?
	AH=01h(CF=1): アダプタの指定が不正
	AH=0Bh(CF=1): ソケットの指定が不正
	AH=14h(CF=1): カードが挿入されていない
解説  o INT 1Fh - Function CFh Subfunction 02hで設定したCH,CL,DXの値を
	取得する。
      o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	INT 1Fh - Function CFh Subfunction 02h


INT 1Fh - Function CFh Subfunction 02h
分類	PCMCIA Socket Service
名前	不明
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=02h
	BH=アダプタ番号(通常00hを指定する)
	BL=ソケット(通常01hを指定する)
	CH=不明(レンジ?)
	    ■CH bit 6=1のとき
	    CL=?
	    DX=?
	    ■CH bit 6〜4=0x1bのとき
	    CL=00〜1Fh
	    DX=0000〜01FFh
	    ■CH bit 6〜4=0x0bのとき
	    CL=?
	    DX=0000〜0FFFh
出力	AH=00h(CF=0): 正常終了
	    CH=?
	    CL=?
	    DX=?
	AH=01h(CF=1): アダプタの指定が不正
	AH=0Bh(CF=1): ソケットの指定が不正
	AH=14h(CF=1): カードが挿入されていない
	AH=FEh(CF=1): DXレジスタの値が不正
	AH=FFh(CF=1): CLレジスタの値が不正
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	INT 1Fh - Function CFh Subfunction 01h


INT 1Fh - Function CFh Subfunction 03h
分類	PCMCIA Socket Service
名前	不明
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=03h
	BH=アダプタ番号(通常00hを指定する)
	CH=機能指定
	    ■CH=00h
	    CL=アドレスナンバー
	    * 指定したナンバーのアドレス登録を取り消す
	    ■CH=01h
	    ES:DI=登録アドレス
	    DX=?
	    * 登録するアドレスナンバーは通常#7。ただし、DX=4143hのときだけ#0
出力	AH=00h(CF=0): 正常終了
	AH=01h(CF=1): アダプタの指定が不正
	AH=15h(CF=1): 無効機能
	AH=16h(CF=1): モード不正
	AH=FCh(CF=1): CLレジスタの値が不正
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	


INT 1Fh - Function CFh Subfunction 04h
分類	PCMCIA Socket Service
名前	機能なし
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=04h
出力	AH=15h(CF=1): 無効機能
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	


INT 1Fh - Function CFh Subfunction 05h
分類	PCMCIA Socket Service
名前	不明
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=05h
	BH=アダプタ番号(通常00hを指定する)
	BL=転送内容指定1(01〜08h)
	CL=転送内容指定2(00〜01h)
	    00h: 408バイト転送
	    01h: 38バイト転送
	ES:DI=転送アドレス
	■CL=01hのときのデータフォーマット
	----------+------------------------------------------------------------
	オフセット|内容
	----------+------------------------------------------------------------
	+00h(WORD)|拡張スロット使用フラグ
	          |0001h: 使用する
	          |FFFFh: 使用しない
	+02h(BYTE)|拡張スロットで使用する割り込み登録
	          |bit 6〜0: INT6〜INT0使用フラグ
	          |    1=使用する
	          |    0=使用しない
	          |* 使用する割り込みに対応するビットを1にする。2つまで指定可
	+03h(BYTE)|常に00h(未使用)
	+04h(WORD)|拡張スロットで使用するI/O空間登録数(0000〜0004h)
	          |I/O空間を使用しないときは0000h
	+06h(WORD)|拡張スロット・領域#0のアドレス下限
	+08h(WORD)|拡張スロット・領域#0のアドレス上限
	+0Ah(WORD)|拡張スロット・領域#1のアドレス下限
	+0Ch(WORD)|拡張スロット・領域#1のアドレス上限
	+0Eh(WORD)|拡張スロット・領域#2のアドレス下限
	+10h(WORD)|拡張スロット・領域#2のアドレス上限
	+12h(WORD)|拡張スロット・領域#3のアドレス下限
	+14h(WORD)|拡張スロット・領域#3のアドレス上限
	+16h      |未使用
	  :       |
	+25h      |
	----------+------------------------------------------------------------
出力	AH=00h(CF=0): 正常終了
	AH=01h(CF=1): アダプタの指定が不正
	AH=FDh(CF=1): BLレジスタの値が不正
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。
      u CL=01hのときのデータフォーマットは、CARDSET.DATと同じ。CARDSET.DAT
	には、このフォーマットで拡張スロット#1〜#3のデータが格納されている。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	INT 1Fh - Function CFh Subfunction 06h


INT 1Fh - Function CFh Subfunction 06h
分類	PCMCIA Socket Service
名前	不明
	Undocumented
対象	PCカードスロット搭載機 + SSDRV.SYS
入力	AH=CFh
	AL=06h
	BH=アダプタ番号(通常00hを指定する)
	BL=転送内容指定1(01〜08h)
	CL=転送内容指定2(00〜01h)
	    00h: 408バイト転送
	    01h: 38バイト転送
	ES:DI=転送アドレス
	* CL=01hのときのデータフォーマットはINT 1Fh - Function CFh 
	  Subfunction 05h参照
出力	AH=00h(CF=0): 正常終了
	AH=01h(CF=1): アダプタの指定が不正
	AH=FDh(CF=1): BLレジスタの値が不正
解説  o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する
      u CL=01hのときのデータフォーマットは、CARDSET.DATと同じ。CARDSET.DAT
	には、このフォーマットで拡張スロット#1〜#3のデータが格納されている。
      u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この
	ファンクションを実行するとZR,PE,OVフラグが破壊される。
関連	INT 1Fh - Function CFh Subfunction 05h


■H98 DMA BIOS


INT 1Fh - Function D0h
分類	DMA BIOS
名前	DMACリセット
	Undocumented
対象	PC-H98
入力	AH=D0h
出力	AH=00h,CF=0: 正常終了
解説  o DMACに対してマスタクリアを行う。DMACはリセットされる。
関連	I/O 001Bh


INT 1Fh - Function D1h
分類	DMA BIOS
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=D1h
出力	AH=00h,CF=0
解説  o なし
関連	


INT 1Fh - Function D2h
分類	DMA BIOS
名前	チャネルアロケート
対象	PC-H98
入力	AH=D2h
	AL=DMAチャネル番号(0〜6)
出力	AH=00h,CF=0: 正常終了
	   40h,CF=1: 指定したDMAチャネルが使用されている
解説  o DMACのチャネル使用権の割り当てを行う。
関連	0000:0591h


INT 1Fh - Function D3h
分類	DMA BIOS
名前	DMAチャネル初期設定
対象	PC-H98
入力	AH=D3h
	AL=DMAチャネル番号(0〜6)
	BH=BLレジスタで設定する内容
	   00h: バスサイズ・転送モードの設定
	   01h: DMA境界の設定
	   02h: 不明(Undocumented)
	(1)BH=00hのとき
	BL  bit 7〜4: バスサイズ
		1111b =  8ビット
		1010b = 16ビット
		0101b = 32ビット
		* これ以外は設定禁止
	BL  bit 3,2: タイプ
		11b = リザーブ
		10b = タイプB
		01b = タイプA
		00b = 互換サイクル
	    bit 1,0 : 00bを設定
	(2)BH=01hのとき
	BL  bit 7〜4:0000bを設定
	BL  bit 3,2:DMA境界
		11=16Mバイト
		10=予約
		01=1Mバイト
		00=64Kバイト
	   bit 1,0:00bを設定
	(2)BH=02hのとき(Undocumented)
	   bit 7〜2:不明
	   bit 1,0:00bを設定
出力	AH=00h,CF=0: 正常終了
	   20h,CF=1: 無効なパラメータが指定された
	   40h,CF=1: 指定したDMAチャネルは使用されている
解説  o DMAチャネルごとのDMAバス幅、DMAアドレス境界を設定する。
関連	


INT 1Fh - Function D4h
分類	DMA BIOS
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=D4h
出力	AH=00h,CF=0
解説  o なし
関連	


INT 1Fh - Function D5h
分類	DMA BIOS
名前	DMAパラメータセット
対象	PC-H98
入力	AH=D5h
	AL  bit 7:TARGET ADDRESS UP/DOWN
		1=TARGET DOWN
		0=TARGET UP
	    bit 6:AUTO INITIALIZE MODE
		1=AUTO INITIALIZE
		0=NO OPERATION
	   bit 5,4:DMA MODE
		 11b=設定禁止
		 10b=読み出し(メモリからI/O)
		 01b=書き込み(I/Oからメモリ)
		 00b=ベリファイ(I/O読み出し)
	   bit 3:0を設定
	   bit 2〜0:DMAチャネル番号(0〜6)
	ES:BX=パラメータテーブルの先頭アドレス
	<パラメータテーブルの形式>
	---------------+-----------------------------------
	アドレス       |内容
	---------------+-----------------------------------
	ES:BX+00h(WORD)|DMA COUNT(L)
	ES:BX+02h(WORD)|DMA COUNT(H) (上位1バイトは00hを設定)
	ES:BX+04h(WORD)|DMA ADDRESS(L)
	ES:BX+06h(WORD)|DMA ADDRESS(H)
	---------------+-----------------------------------
出力	AH=00h,CF=0: 正常終了
	   20h,CF=1: 無効なパラメータが指定された
解説  o DMACに指定されたチャネルの各種パラメータを設定し、シングルマスク
	レジスタのマスクを解除する。
関連	0000:0591h


INT 1Fh - Function D6h
分類	DMA BIOS
名前	DMAパラメータリードバック
対象	PC-H98
入力	AH=D6h
	AL=DMAチャネル番号(0〜6)
	ES:BX=パラメータテーブルの先頭アドレス
	    * 形式はINT 1Fh - Function D5h参照
出力	AH=00h,CF=0: 正常終了
	   40h,CF=1: 指定したDMAチャネルは使用されていない
解説  o 指定されたチャネルのDMAアドレス、転送バイト数を取得する。
関連	0000:0591h


INT 1Fh - Function D7h
分類	DMA BIOS
名前	チャネルリリース
対象	PC-H98
入力	AH=D7h
	AL=DMAチャネル番号(0〜6)
出力	AH=00h,CF=0: 正常終了
	   40h,CF=1: チャネルチェックエラー
解説  o DMAチャネルの使用権を解放する。
関連	0000:0591h


■H98 拡張ROM BIOS


INT 1Fh - Function D8h
分類	拡張ROM BIOS
名前	不明
	Undocumented
対象	PC-H98
入力	AH=D8h
	CX=使用する割り込み番号
	ES:BX=割り込み制御ブロックのアドレス
出力	CF=1:指定された割り込み制御ブロックがすでに使用されている
	CF=0:正常終了
解説  o 詳細不明
関連	


INT 1Fh - Function D9h
分類	拡張ROM BIOS
名前	拡張ROM領域割り込み制御ブロック更新
	(documented)
対象	PC-H98
入力	AH=D9h
	AL=拡張ROMのセグメントアドレスの上位8ビット
	CX=使用する割り込み番号
	ES:BX=チェインする割り込み制御ブロックのアドレス
出力	CF=1:指定された割り込み制御ブロックがすでに使用されている
	CF=0:正常終了
解説  o 拡張ROM内にある割り込み制御ブロックのオフセット+04〜07h(割り込み
	ルーチンのチェイン)を更新する。
関連	


INT 1Fh - Function DAh
分類	拡張ROM BIOS
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=DAh
出力	CF=0
解説  o なし
関連	


INT 1Fh - Function DBh
分類	拡張ROM BIOS
名前	拡張ROM書き込み禁止・許可設定
	Undocumented
対象	PC-H98
入力	AH=DBh
	AL=拡張ROMのセグメントアドレスの上位8ビット
	CX=バイト数
	DL=設定値
	    00h: 書き込み禁止
	    01h: 書き込み許可
出力	AH=00h,CF=0: 正常終了
	AH=40h,CF=1: ALの範囲が不正
解説  o 拡張ROM領域の書き込み禁止・許可状態を設定する。
関連	


INT 1Fh - Function DC〜DEh
分類	拡張ROM BIOS
名前	機能なし
	Undocumented
対象	PC-H98
入力	AH=DC〜DEh
出力	CF=0
解説  o なし
関連	


■H98 電源BIOS


INT 1Fh - Function DFh
分類	電源BIOS
名前	電源OFF禁止・許可設定
	Undocumented
対象	PC-H98
入力	AH=DFh
	BH=00h    :電源OFF禁止
	   00h以外:電源OFF許可
出力	なし
解説  o	このファンクションで電源OFF禁止に設定すると、電源スイッチを押しても
	電源がOFFしない。
      o 電源OFF禁止状態でも、INT 1Fh - Function 98hでは電源がOFFになる。
関連	INT 1Fh - Function 98h
	0000:0596h bit 1
	I/O 0431h